package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntityPlus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 预约下单对象 web_recycle_order
 * 
 * @author ruoyi
 * @date 2021-05-24
 */
@ApiModel("预约下单对象")
public class WebRecycleOrder extends BaseEntityPlus
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 所属用户 */
    @NotNull
    private Long userId;

    @ApiModelProperty(value = "保存时传入",required = true)
    @TableField(exist = false)
    private Integer addressId;

    /** 省 */
    @Excel(name = "省")
    @ApiModelProperty(value = "省" , hidden = true )
    private String province;

    /** 订单编号 */
    @Excel(name = "订单编号")
    @ApiModelProperty(value = "订单编号" , hidden = true )
    private String orderNo;

    /** 市 */
    @Excel(name = "市")
    @ApiModelProperty(value = "市" , hidden = true )
    private String city;

    /** 区 */
    @Excel(name = "区")
    @ApiModelProperty(value = "区" , hidden = true )
    private String district;

    private Long parentId;

    /** 详细地址 */
    @Excel(name = "详细地址")
    @ApiModelProperty(value = "详细地址" , hidden = true )
    private String address;

    /** 经度 */
    @ApiModelProperty(value = "经度")
    private String longitude;

    /** 纬度 */
    @ApiModelProperty(value = "纬度")
    private String latitude;

    /** 订单状态 */
    @Excel(name = "订单状态")
    @ApiModelProperty(value = "订单状态" , hidden = true )
    private Long status;

    /** 回收类型1单次2定期 */
    @Excel(name = "回收类型")
    @ApiModelProperty(value = "回收类型0单次1定期" )
    @NotNull
    private Long type;

    /** 联系人 */
    @Excel(name = "联系人")
    @ApiModelProperty(value = "联系人" , hidden = true )
    private String linkName;

    /** 回收周期天 */
    @ApiModelProperty(value = "回收周期天")
    private Long cycleDay;

    /** 电话 */
    @Excel(name = "电话")
    @ApiModelProperty(value = "电话" , hidden = true )
    private String mobile;

    /** 上次回收日期(定期) */
    private Date lastCycleDate;

    /** 回收类别 */
    @ApiModelProperty(value = "回收类别，多选 用逗号分割")
    private String recycleTypes;

    /** 预估重量 */
    @ApiModelProperty(value = "预估重量")
    private String weight;

    /** 描述 */
    @ApiModelProperty(value = "描述")
    private String comment;

    /** 备注 */
    @ApiModelProperty(value = "备注")
    private String note;

    /** 图片，最多3张 */
    @ApiModelProperty(value = "图片，最多3张")
    private String images;

    /** 预约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    @ApiModelProperty(value = "预约时间")
    private Date preTime;

    @TableField(exist = false)
    @ApiModelProperty(value = "回收员姓名")
    private String recycleName;
    @TableField(exist = false)
    @ApiModelProperty(value = "回收员电话")
    private String recycleMobile;
    @TableField(exist = false)
    @ApiModelProperty(value = "回收总重量")
    private Double recycleWeight;
    @TableField(exist = false)
    @ApiModelProperty(value = "回收总价格")
    private BigDecimal recyclePrice;

    @TableField(exist = false)
    @ApiModelProperty(value = "回收物详细信息，只有回收员确认完订单才有信息")
    List<WebReceiveList> webReceiveList;

    private Integer cycleStatus;

    public Integer getCycleStatus() {
        return cycleStatus;
    }

    public void setCycleStatus(Integer cycleStatus) {
        this.cycleStatus = cycleStatus;
    }

    public List<WebReceiveList> getWebReceiveList() {
        return webReceiveList;
    }

    public void setWebReceiveList(List<WebReceiveList> webReceiveList) {
        this.webReceiveList = webReceiveList;
    }

    public String getRecycleName() {
        return recycleName;
    }

    public void setRecycleName(String recycleName) {
        this.recycleName = recycleName;
    }

    public Double getRecycleWeight() {
        return recycleWeight;
    }

    public void setRecycleWeight(Double recycleWeight) {
        this.recycleWeight = recycleWeight;
    }

    public BigDecimal getRecyclePrice() {
        return recyclePrice;
    }

    public void setRecyclePrice(BigDecimal recyclePrice) {
        this.recyclePrice = recyclePrice;
    }

    public String getRecycleMobile() {
        return recycleMobile;
    }

    public void setRecycleMobile(String recycleMobile) {
        this.recycleMobile = recycleMobile;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setProvince(String province) 
    {
        this.province = province;
    }

    public String getProvince() 
    {
        return province;
    }
    public void setOrderNo(String orderNo) 
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo() 
    {
        return orderNo;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setDistrict(String district) 
    {
        this.district = district;
    }

    public String getDistrict() 
    {
        return district;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setLongitude(String longitude) 
    {
        this.longitude = longitude;
    }

    public String getLongitude() 
    {
        return longitude;
    }
    public void setLatitude(String latitude) 
    {
        this.latitude = latitude;
    }

    public String getLatitude() 
    {
        return latitude;
    }
    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }
    public void setType(Long type) 
    {
        this.type = type;
    }

    public Long getType() 
    {
        return type;
    }
    public void setLinkName(String linkName) 
    {
        this.linkName = linkName;
    }

    public String getLinkName() 
    {
        return linkName;
    }
    public void setCycleDay(Long cycleDay) 
    {
        this.cycleDay = cycleDay;
    }

    public Long getCycleDay() 
    {
        return cycleDay;
    }
    public void setMobile(String mobile) 
    {
        this.mobile = mobile;
    }

    public String getMobile() 
    {
        return mobile;
    }
    public void setLastCycleDate(Date lastCycleDate) 
    {
        this.lastCycleDate = lastCycleDate;
    }

    public Date getLastCycleDate() 
    {
        return lastCycleDate;
    }
    public void setRecycleTypes(String recycleTypes) 
    {
        this.recycleTypes = recycleTypes;
    }

    public String getRecycleTypes() 
    {
        return recycleTypes;
    }
    public void setWeight(String weight)
    {
        this.weight = weight;
    }

    public String getWeight()
    {
        return weight;
    }
    public void setComment(String comment) 
    {
        this.comment = comment;
    }

    public String getComment() 
    {
        return comment;
    }
    public void setImages(String images) 
    {
        this.images = images;
    }

    public String getImages() 
    {
        return images;
    }
    public void setPreTime(Date preTime) 
    {
        this.preTime = preTime;
    }

    public Date getPreTime() 
    {
        return preTime;
    }

    public Integer getAddressId() {
        return addressId;
    }

    public void setAddressId(Integer addressId) {
        this.addressId = addressId;
    }

    public String getNote() {
        return note;
    }


    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public void setNote(String note) {
        this.note = note;
    }
}
